Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. One such technique is a solid modeling technique, which provides for topological 3D models where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to topological faces bounded by edges. Hereinafter, the terms vertex, edge, and face will be used interchangeably with their respective, corresponding geometric entities.
In general, a solid model consists of various features created by modeling operations. For example, a solid model may include a boss created by an extrude operation applied to a two-dimensional (2D) sketch and a hole created by a cut operation applied to a 2D sketch. In addition to bosses and holes, features include fillets, shells, sweeps, and chamfers by way of non-limiting example. In general, the time it takes to rebuild a model (e.g., updating a model after executing a modeling operation) increases in proportion to the number of features in the model.
CAD systems may combine solid modeling and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters. After a user has made a change to one or more parameters of the features, CAD systems may automatically rebuild a model from the features. Feature-based solid modeling allows for powerful editing capabilities during the design process, due in part to the inherent parametric characteristics.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates 3D parts and may assemble the 3D parts into a subassembly or an assembly. A subassembly may also consist of other subassemblies. An assembly is designed using parts and subassemblies. Parts and subassemblies are hereinafter collectively referred to as components.
A commonly used feature in a part model is a hole feature. A hole feature may be created by constructing a 3D cylindrical object having a specific diameter and applying that object to one or more parts using a cut operation, for example. Holes often have standard shapes. The SOLIDWORKS® Hole Wizard software tool allows a user to create a hole having a standard shape. The Hole Wizard has a library of pre-defined hole types. A user may select a hole type, specify parameters for an instance of that hole type, and the SOLIDWORKS CAD system will then create a hole. For example, the Hole Wizard enables a user to insert from a library a counterbore hole, a countersink hole, a straight tap hole, and a tapered tap hole into a part design. The user may also specify various parameters, including the diameter of the hole, the depth of the hole, and the angle of a tapered opening.
Holes may also have non-standard shapes. A hole may contain multiple features. Multi-feature holes are common in assemblies designed for many industries, for example, hydraulic systems in the heavy machinery industry. Such holes may be complex. For example, instead of a simple cylindrical hole or a hole created from an object in a pre-defined hole library, one complex hole design may include a series of hole features having different shapes with various diameters and end conditions. One or more of these hole features may include tapered ends that meet another hole feature that has a different diameter than the ends. To create a complex hole that incorporates multiple hole types, a user may need to create a 2D sketch for each hole type, then revolve or extrude the sketch to create a feature. A customized hole feature may also be added from a library (e.g., using the SOLIDWORKS® Hole Wizard tool). The difficulty with this approach is the burden placed on the user to create a complex series of sketches and features to create one desired hole. With the exception of library features (e.g., pre-defined Hole Wizard features), during the part design phase for each occurrence of a hole feature in a complex hole, the user may need to create a sketch and have a modeling operation applied to that sketch. Although, individual features comprising the complex hole may be saved in a design library for future use.
A further drawback of the current state of the art is the difficulty of recognizing and correcting an error that causes the construction of a complex multi-featured hole to fail. A failure may occur when a constraint cannot be solved or a modeling operation produces an error. Locating and resolving the cause of the failure in the hole design is often difficult and may be impossible. Sometimes a user can take a step-by-step approach consisting of selecting an edge or a face amongst the hole features that comprise the complex hole to determine if that edge or face is causing the failure. This approach, however, may require the user to delete and re-create features that comprise the complex hole to find the error.
At times, a CAD user may wish to create a hole comprised of two or more desired hole features that originate from two opposite or different sides of a 3D part. This may be done to imitate a manufacturing process whereby one complex real-world hole is drilled from two different directions so that the dimensions and tolerances of the real-world hole match the required dimensions and tolerances for each end of the real-world hole.
If the depths of the holes are specified exactly, the depths will not update when the base model geometry changes (e.g., gets thicker) unless the user has written an equation or created one or more external geometric references. When creating a multi-feature hole from two different directions, the prior art may require the user to manually calculate the required depths of one or more of the hole features. For example, a user may need to calculate the depth of each of two middle hole features of a four-feature hole from one or both of the end hole features. Although the proper depths may be calculated and entered by the user, the values are not parametric and do not update dynamically. Rather, the user must write an equation to update the values when the model changes.
A further drawback with the prior art is the difficulty in manually reordering independent hole features that comprise a complex hole, which are separate features that may have originated from a pre-defined hole feature in a feature library or a manually drawn sketch. To reorder features in the complex multi-featured hole, one or more hole features in a library may need to be accessed and incorporated again and a complex sketch may need to be redrawn then revolved to construct a hole feature. A difficulty in reordering features in a multi-feature hole is due to the number of internal and external references involved (e.g., dimensions and geometric references), which often causes unexpected downstream geometry failures that then must be repaired by the user.
A further disadvantage in the prior art is the time-consuming nature of creating multiple features to construct a desired hole. Moreover, the file size of the model data and rebuild times increase with each new feature.
A system and method that overcomes the disadvantages of requiring piecewise construction and re-construction of hole geometry for a complex hole, and reduces the need to perform the often difficult tasks of identifying failed geometry, updating a feature in a multi-feature hole in response to another feature of the multi-feature hole being updated, and reordering hole features would be a beneficial improvement over current state-of-the-art CAD systems.